<%@ page import="org.springframework.web.context.request.SessionScope" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%request.setAttribute("ctx", request.getContextPath());%>
<html>
<head>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="${pageContext.request.contextPath}/layui-v2.9.14/css/layui.css">
    <script src="${pageContext.request.contextPath}/layui-v2.9.14/jquery-2.1.0.min.js"></script>
    <script src="${pageContext.request.contextPath}/layui-v2.9.14/layui.js"></script>
    <script src="${pageContext.request.contextPath}/layui-v2.9.14/layui_ext/xmSelect/xm-select.js"></script>
    <script src="${pageContext.request.contextPath}/layui-v2.9.14/crypto-js.js"></script>
    <title>新建角色</title>
</head>
<body>
<form class="layui-form" action="">
    <div class="layui-form-item">
        <input type="hidden" name="id" id="id"/>
        <label class="layui-form-label">角色名称</label>
        <div class="layui-input-block">
            <input type="text" name="roleName" id="roleName" lay-verify="required" placeholder="请输入" autocomplete="off"
                   class="layui-input">
        </div>
    </div>

    <div id="ID-tree-demo-showCheckbox"></div>


    <div class="layui-form-item">
        <div class="layui-input-block">
            <button type="submit" class="layui-btn" lay-submit lay-filter="demo1">立即提交</button>
            <button type="reset" class="layui-btn layui-btn-primary">重置</button>
        </div>
    </div>
</form>

<!-- 请勿在项目正式环境中引用该 layui.js 地址 -->

<script>
    layui.use(['form', 'laydate', 'util'], function () {
        var form = layui.form;
        var layer = layui.layer;
        var laydate = layui.laydate;
        var util = layui.util;
        var tree = layui.tree;

        // 模拟数据

        let data = JSON.parse('${menuList}')
        tree.render({
            elem: '#ID-tree-demo-showCheckbox',
            data: data,
            showCheckbox: true,
            id: 'test', // 自定义 id 索引
            edit: ['add', 'update', 'del'], // 开启节点的右侧操作图标
            customName: { // 自定义 data 字段名 --- 2.8.14+
                id: 'menuId',
                title: 'name',
                children: 'children'
            },
        });

        $("#roleName").on('blur',function () {
            let roleName=$("#roleName").val();
            $.post(
                "/role/checkRoleName.do",
                {roleName:roleName},
                function (res) {
                    if(res.code==0){
                        layer.msg("角色已存在",{time:1000},function () {
                            $("#id").val(res.data.roleId)
                            tree.setChecked('test', res.data.menuIds); // 批量勾选 id 为 1,3 的节点
                        })
                    }else{

                        layer.msg("角色不存在")
                        // 重载
                        tree.reload('test', { // options
                            data:JSON.parse('${menuList}')
                        });
                    }
                }
            );
        })



    // 提交事件
    form.on('submit(demo1)', function (data) {
        var field = data.field; // 获取表单字段值
        // 显示填写结果，仅作演示用
        var checkData = tree.getChecked('test');
        let menuId="";
        for (let i = 0; i < checkData.length; i++) {
            menuId+=","+checkData[i].menuId;
            let children=checkData[i].children;
            for (let j = 0; j < children.length; j++) {
                menuId+=','+children[j].menuId;
            }

        }
        menuId=menuId.substring(1);
        console.log(menuId)
        field.menuIds=menuId;
        $.post(
            "/role/addOrUpdate.do",
            field,
            function (res) {
                if(res.code==0){
                    layer.msg(res.msg,{time:2000},function () {
                       location.href="/user/tolist.do"
                    })
                }else{
                    layer.msg(res.msg,{time:2000})
                }
            }
        );


        // 此处可执行 Ajax 等操作
        // …
        return false; // 阻止默认 form 跳转
    });

    // 日期
    laydate.render({
        elem: '#date'
    });

    // 普通事件
    util.on('lay-on', {
        // 获取验证码
        "get-vercode": function (othis) {
            var isvalid = form.validate('.demo-phone'); // 主动触发验证，v2.7.0 新增
            // 验证通过
            if (isvalid) {
                layer.msg('手机号规则验证通过');
                // 此处可继续书写「发送验证码」等后续逻辑
                // …
            }
        }

    });
    });
</script>

</body>
</html>